package com.ty.user.starter.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ty.user.starter.entity.Role;
import com.ty.user.starter.entity.criteria.RoleCriteria;
import com.ty.user.starter.entity.dto.RoleDto;
import com.ty.user.starter.entity.vo.RoleVo;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author minku
 * @since 2021-10-16
 */
@Validated
public interface RoleService extends IService<Role> {
    /**
     * 新增角色
     *
     * @param dto 角色信息
     */
    void add(@Valid RoleDto dto);

    /**
     * 修改角色
     *
     * @param dto 角色信息
     */
    void edit(@Valid RoleDto dto);

    /**
     * 删除角色
     *
     * @param id 角色id
     */
    void delete(long id);

    /**
     * 分页
     * @param criteria 分页条件
     * @return 角色列表
     */
    IPage<RoleVo> findAll(@Valid RoleCriteria criteria);

    /**
     * 查询角色的权限菜单id列表
     * @param roleId 角色id
     * @return 权限菜单id列表
     */
    List<Long> getMenus(long roleId);
}
